USB摄像头视频拉流
- 将USB摄像头插入Atlas 200I DK A2 开发者套件的USB接口。
- 使用摄像头逐帧采集,并将推理结果写入结果视频中。示例代码如下。
import cv2 cap = cv2.VideoCapture(0) # 获取保存视频相关变量 fps = cap.get(cv2.CAP_PROP_FPS) # 获取帧数 fourcc = cv2.VideoWriter_fourcc(*'mp4v') # 设置视频编码类型 outfile = 'video_result.mp4' # 设置结果保存文件 video_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取原视频的高度 video_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 获取原视频的宽度 writer = cv2.VideoWriter(outfile, fourcc, fps, (video_width, video_height)) # 获取视频写入writer try: while(cap.isOpened()): # 在摄像头打开的情况下循环执行 ret, frame = cap.read() # 此处 frame 为 bgr 格式图片 # ======================================== # 这里放入模型前处理、推理、后处理相关代码,根据实际情况修改 img = preprocess(frame) # 前处理 infer_res = infer(img) # 推理 img_res = postprocess(infer_res) # 后处理 # ======================================== # 将推理结果写入视频 writer.write(img_res) except KeyboardInterrupt: cap.release() # 释放摄像头资源 writer.release() # 释放视频写入资源 finally: cap.release() writer.release()
此代码为样例代码,用户需自行修改模型的前处理、推理、后处理部分。